bitmask: Fix intersection code
authorBenjamin Otte <otte@redhat.com>
Sat, 10 Nov 2012 17:35:37 +0000 (18:35 +0100)
committerBenjamin Otte <otte@redhat.com>
Sat, 10 Nov 2012 17:35:37 +0000 (18:35 +0100)
With the fix in 77912a65e2aa6eb9cfee994fa93bbfbc6b9f8538, another bug
got visible: booleans are 32 bits, so if the intersection between the 2
bitmasks happened in higher bits, the return value would be truncated to
FALSE.

This actually made slider handles disappear, so it was pretty visible.

gtk/gtkbitmaskprivateimpl.h

index c46fa9622ce389509ad38476fcef6641ececa615..c0058c77da94bd30866cebf5b59ee301c697b830 100644 (file)
@@ -163,5 +163,5 @@ _gtk_bitmask_intersects (const GtkBitmask *mask,
       _gtk_bitmask_is_allocated (other))
     return _gtk_allocated_bitmask_intersects (mask, other);
   else
-    return _gtk_bitmask_to_bits (mask) & _gtk_bitmask_to_bits (other);
+    return _gtk_bitmask_to_bits (mask) & _gtk_bitmask_to_bits (other) ? TRUE : FALSE;
 }